import request from '@/config/axios'

// 考试信息 VO
export interface ExamTestVO {
  id: number // 考试ID
  examName: string // 考试名称
  examType: string // 考试类型：月考、期中、期末等
  classId: number // 班级ID
  teacherId: number // 出题老师ID
  examDate: Date // 考试时间
  totalScore: number // 总分
  subjectConfig: string // 科目配置（科目名称、满分等）
  description: string // 考试说明
  status: number // 状态
}

// 班级信息 VO（用于树形列表）
export interface ExamClassInfoVO {
  classId: number // 班级ID
  className: string // 班级名称
  classCode: string // 班级代码
  grade: string // 年级
  studentCount: number // 学生数量
  teacherId: number // 班主任ID
  teacherName: string // 班主任姓名
  status: number // 状态
}

// 考试树形列表 VO
export interface ExamTestTreeVO {
  id: number // 考试ID
  examName: string // 考试名称
  examType: string // 考试类型
  examDate?: Date // 考试时间
  classList: ExamClassInfoVO[] // 班级列表
}

// 考试信息 API
export const ExamTestApi = {
  // 查询考试信息分页
  getExamTestPage: async (params: any) => {
    return await request.get({ url: `/system/exam-test-info/page`, params })
  },

  // 查询考试信息详情
  getExamTest: async (id: number) => {
    return await request.get({ url: `/system/exam-test-info/get?id=` + id })
  },

  // 新增考试信息
  createExamTest: async (data: ExamTestVO) => {
    return await request.post({ url: `/system/exam-test-info/create`, data })
  },

  // 修改考试信息
  updateExamTest: async (data: ExamTestVO) => {
    return await request.put({ url: `/system/exam-test-info/update`, data })
  },

  // 删除考试信息
  deleteExamTest: async (id: number) => {
    return await request.delete({ url: `/system/exam-test-info/delete?id=` + id })
  },

  // 导出考试信息 Excel
  exportExamTest: async (params) => {
    return await request.download({ url: `/system/exam-test-info/export-excel`, params })
  },

  // 获取考试简单列表
  getSimpleExamTestList: async () => {
    return await request.get({ url: `/system/exam-test-info/page`, params: { pageNo: 1, pageSize: 1000 } })
  },

  // 获取考试树形列表（包含班级信息）
  getExamTestTreeList: async () => {
    return await request.get({ url: `/system/exam-test-info/tree-list` })
  },
}
